package study.JavaBase; /**
 * date:2025.10.15
 * title：重写(Override)与重载(Overload)
 * author：fzy
 */

/**
 * 666我真超耐磨了，文件覆盖我点的取消你还是给我的文件覆盖了，本地历史记录都没有，66白写了
 */

    //重写就是子类定义了一个与其父类具有相同名称，参数列表和返回方法的方法，---外壳不变，核心重写
    //子类可以根据自己的需要实现自己的方法
    //注意的是，在异常处理这里，子类不能抛出新的异常或者抛出比父类的方法异常更加宽泛的异常

public class Java_18 {
    public static void main(String[] arg){
        Person_1 person = new Person_1();
        Liuxiang liuxiang = new Liuxiang();
//        person.run();
        liuxiang.run();
        new overloadClass().run();
        new overloadClass().run("fzy");
    }
}

//重写
//子类的重写方法权限不可以比父类地，public>没写>protected>private
//final不可被重写，static也不可以，但是可以被重复定义
class Person_1{
    Person_1(){

    }
    void run(){
        System.out.println("我跑了100米用了20秒");
    }
}

class Liuxiang extends Person_1{
    @Override
    void run() {
        //super使用
        super.run();
        System.out.println("我叫刘翔，我一秒100米哈哈哈哈");
    }
}

//重载
//在一个类中，方法名字相，参数不同，返回类型也可以不同，最常用的是构造器的重载
//必须改变参数
//可以修改访问修饰符号
//异常可以不同
//无法只修改返回值

class overloadClass{
    void run(){
        System.out.println("我开始跑跑步了");
    }
    void run(String name){
        if(name== "fzy"){
            System.out.println("我是fzy，我不用跑");
        }else {
            System.out.println("润润");
        }
    }
}
